Spring Boot CRUD Read İşlemi (PostgreSQL ile Veri Listeleme)
Bu rehberde Spring Boot CRUD operasyonlarından Read (veri okuma) işlemini nasıl gerçekleştirebileceğinizi adım adım öğreneceksiniz.
Projede Spring Boot, PostgreSQL ve Spring Data JPA kullanacağız. IDE olarak IntelliJ IDEA tercih ettik ancak Eclipse veya VS Code ile de aynı işlemleri yapabilirsiniz.
1. Spring Boot Projesi Oluşturma
Öncelikle Spring Boot projesini oluşturmak için Spring Initializr sitesini kullanıyoruz.
Proje oluştururken aşağıdaki ayarları yapın:
- Maven Project
- Java 8 veya Java 11
- Spring Web
- Spring Data JPA
- PostgreSQL Driver
Ayarları yaptıktan sonra Generate butonuna tıklayarak projeyi indirip IDE içerisinde açabilirsiniz.
2. Spring Boot Proje Yapısı
Spring Boot uygulamalarında genellikle aşağıdaki katmanlı mimari kullanılır:
- Model → Veritabanı tablolarını temsil eder
- Repository → Veritabanı işlemlerini yönetir
- Controller → API endpointlerini sağlar
3. Model (Entity) Oluşturma
İlk olarak model paketinde User entity sınıfını oluşturuyoruz.
package com.example.demo.model;
import javax.persistence.*;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
public User(){}
public Long getId(){
return id;
}
public void setId(Long id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email = email;
}
}
4. Repository Katmanı
Veritabanı işlemleri için UserRepository interface oluşturuyoruz.
package com.example.demo.repository;
import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository{
}
JpaRepository sayesinde aşağıdaki CRUD işlemleri hazır gelir:
- save()
- findAll()
- findById()
- deleteById()
5. Controller Katmanı
API endpoint oluşturmak için UserController sınıfını yazıyoruz.
package com.example.demo.controller;
import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/listele")
public List getAllUsers(){
return userRepository.findAll();
}
}
6. PostgreSQL Veritabanı Bağlantısı
application.properties dosyasına aşağıdaki ayarları ekleyin.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=true
spring.datasource.url=jdbc:postgresql://localhost:5432/databaseAdi
spring.datasource.username=postgres
spring.datasource.password=sifre
7. API Test Etme
Uygulamayı çalıştırdıktan sonra aşağıdaki endpoint üzerinden verileri listeleyebilirsiniz.
http://localhost:8080/api/listele
Bu endpoint veritabanındaki tüm kullanıcıları JSON formatında döndürür.
Sonuç
Bu yazıda Spring Boot CRUD işlemlerinden Read operasyonunu adım adım gerçekleştirdik.
- Spring Boot projesi oluşturduk
- Entity sınıfı yazdık
- Repository katmanı ekledik
- Controller ile API endpoint oluşturduk
- PostgreSQL bağlantısını yapılandırdık
Bir sonraki yazıda Spring Boot CRUD Create işlemini ele alacağız.